/*
 * Gurobi.h
 *
 *  Created on: May 14, 2013
 *      Author: sjelic
 */

#ifndef GUROBILP_H_
#define GUROBILP_H_

#include "coveringPackingLP.h"


namespace coveringPacking {
	struct testData {
		unsigned int m;
		unsigned int n;
		double d;
		double eps;
		double primobj;
		double dualobj;
		double primDualGap;
		double time;
		char sep;
		unsigned int numOfNonZeroInConstrMtrx;
	};

	int __stdcall mycallback(GRBmodel *, void *, int, void *);

	class GurobiLP {
	public:
		struct testData myTestData;
		GRBenv* env;
		GRBmodel* myModel;
		string logFilePath;
		bool normalized;
		GurobiLP(double,double,string,bool);
		void convertMatrixAFromYoungToGurobiModel(string);
		void tuningAndSolvingModel();
		void writingResultsToFile(string,char);
		~GurobiLP();
	};

} /* namespace coveringPacking */
#endif /* GUROBI_H_ */
